Control circuit of client-side game console for enabling multiple video game consoles to together emulate same standalone multiplayer video game through networking connection

ABSTRACT

A control circuit of a client-side game console includes: a processor and a storage circuit for storing a computer program product. The processor is arranged to operably execute the computer program product to perform following operations: establishing networking connection between the client-side game console and a master-side game console; receiving client-side input values generated by a user control device of the client-side game console; transmitting the client-side input values to the master-side game console; receiving a target instruction and a pseudo clock indicator value transmitted from the mater-side game console; executing the target instruction in a client-side emulating environment based on the pseudo clock indicator value; and rendering an updated client-side game screen according to execution results of the target instruction and displaying the updated client-side game screen on a display device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority to Patent ApplicationNo. 106125624, filed in Taiwan on Jul. 28, 2017; the entirety of whichis incorporated herein by reference for all purposes.

BACKGROUND

The disclosure generally relates to a video game console and, moreparticularly, to a control circuit of a client-side game console forenabling multiple video game consoles to together emulate a samestandalone multiplayer video game through networking connections.

Many standalone multiplayer video games announced in the era in whichInternet was not so popular have become classic video games nowadays.Therefore, various software-based or hardware-based video game emulatorshave been developed to emulate the old fashion video game consoles orarcade machines so that modern users can enjoy those classic videogames.

The user control mechanism of the old fashion video game consoles orarcade machines requires that the keyboards or joysticks manipulated bydifferent players should be physically connected to the same video gamemachine. In other words, the old fashion video game consoles or arcademachines does not allow different users to play the same multiplayervideo game together through networking connections. Accordingly, theplayers who want to play the same multiplayer video game together arethus required to be present at the same location (e.g., the same room)at the same time so as to play the same video game displayed on the samescreen.

Internet related applications have become more and more popular, buttraditional video game emulators still cannot enable players indifferent geographical locations to play the same old fashionmultiplayer video game together due to the restriction of the originalarchitecture of the old fashion video game consoles or arcade machinesto be emulated. Apparently, this is a major bottleneck for theapplication flexibility of the traditional video game emulators.

SUMMARY

An example embodiment of a control circuit of a client-side video gameconsole is disclosed. The client-side video game console comprises atransmission circuit, an user control device, and a communicationcircuit. The control circuit comprises a processor; and a storagecircuit arranged to operably store a computer program product; whereinthe processor is arranged to operably execute the computer programproduct to perform following operations: establishing a networkingconnection between the client-side video game console and a remotemaster-side video game console through the communication circuit;loading a target game image file into a client-side emulatingenvironment created by the processor; receiving one or more client-sideinput values generated by the user control device based on an user'smanipulations; utilizing the communication circuit to transmit the oneor more client-side input values to the master-side video game console;receiving a target instruction and a pseudo clock indicator valuetransmitted from the master-side video game console through a network;executing the target instruction in the client-side emulatingenvironment based on the pseudo clock indicator value; and rendering anupdated client-side game screen according to executing results of thetarget instruction and transmitting the updated client-side game screento a client-side display device for displaying through the transmissioncircuit.

Both the foregoing general description and the following detaileddescription are examples and explanatory only, and are not restrictiveof the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a simplified functional block diagram of a video gameemulating system according to one embodiment of the present disclosure.

FIG. 2 shows a simplified functional module diagram of a computerprogram product stored in a master-side game console in FIG. 1 accordingto one embodiment of the present disclosure.

FIG. 3 shows a simplified functional module diagram of a computerprogram product stored in a client-side game console in FIG. 1 accordingto one embodiment of the present disclosure.

FIGS. 4˜5 collectively show a simplified flowchart illustrating a methodfor emulating a standalone multiplayer video game according to oneembodiment of the present disclosure.

DETAILED DESCRIPTION

Reference is made in detail to embodiments of the invention, which areillustrated in the accompanying drawings. The same reference numbers maybe used throughout the drawings to refer to the same or like parts,components, or operations.

FIG. 1 shows a simplified functional block diagram of a video gameemulating system 100 according to one embodiment of the presentdisclosure. The video game emulating system 100 comprises multiple videogame consoles (e.g., the exemplary video game consoles 110, 130, and 150shown in FIG. 1) capable of communicating with each other through anetwork, and multiple display devices (e.g., the exemplary displaydevices 120, 140, and 160 shown in FIG. 1) respectively coupled with themultiple video game consoles. The aforementioned network may be realizedwith Internet or Intranet and may adopt various communication protocols.

Two or more video game consoles in the video game emulating system 100may cooperate together through networking connections to conductemulation operations of the same old fashion standalone multiplayervideo game, so as to synchronously display the emulated results of thevideo game on different display devices in different geographicallocations. This realizes a multiplayer gaming function that allows usersin different geographical locations (e.g., different rooms, differentbuildings, different cities, or different countries) to play the sameold fashion standalone multiplayer video game together, which isimpossible for the traditional video game emulators.

The term “old fashion standalone multiplayer video game” used throughoutthe description and the claims refers to various old multiplayer arcadegames, TV games, or PC games, which were originally designed to beexecuted on a standalone game console, able to allow multiple users toplay the same video game together by manipulating the same video gameconsole at the same location, but incapable of supporting multiple usersin different geographical locations to together play the same video gamethrough networking connections.

In the video game emulating system 100, the video game consoles havesimilar main architecture with each other. As shown in FIG. 1, forexample, the video game console 110 comprises a memory 111, atransmission circuit 112, an user control device 113, a communicationcircuit 114, and a control circuit 115. The control circuit 115comprises a processor 116 and a storage circuit 117, while the storagecircuit 117 is stored with a computer program product 118. The videogame console 130 comprises a memory 131, a transmission circuit 132, anuser control device 133, a communication circuit 134, and a controlcircuit 135. The control circuit 135 comprises a processor 136 and astorage circuit 137, while the storage circuit 137 is stored with acomputer program product 138.

In the video game console 110, the memory 111 is configured to operablystore data required for the operations of the control circuit 115 orother circuits. The transmission circuit 112 is configured to operablytransmit audio and video data to the corresponding display device 120for displaying. The user control device 113 is configured to operablyallow an user to input game control commands therefrom. Thecommunication circuit 114 is configured to operably communicate datawith other remote devices through the network. The control circuit 115is coupled with the memory 111, the transmission circuit 112, the usercontrol device 113, and the communication circuit 114. The processor 116of the control circuit 115 is configured to operably execute thecomputer program product 118 stored in the storage circuit 117 so as tocontrol the operations of the above components of the video game console110.

In the video game console 130, the memory 131 is configured to operablystore data required for the operations of the control circuit 135 orother circuits. The transmission circuit 132 is configured to operablytransmit audio and video data to the display device 140 for displaying.The user control device 133 is configured to operably allow an user toinput game control commands therefrom. The communication circuit 134 isconfigured to operably communicate data with other remote devicesthrough the network. The control circuit 135 is coupled with the memory131, the transmission circuit 132, the user control device 133, and thecommunication circuit 134. The processor 136 of the control circuit 135is configured to operably execute the computer program product 138stored in the storage circuit 137 so as to control the operations of theabove components of the video game console 130.

The computer program product 118 stored in the storage circuit 117 maybe realized with one or more application program modules. For example,FIG. 2 shows a simplified functional module diagram of the computerprogram product 118 in FIG. 1 according to one embodiment of the presentdisclosure. In this embodiment, the computer program product 118comprises a video and audio processing module 210, a pseudo clockcontrol module 220, a networking module 230, an user command receivingmodule 240, and an emulator module 250.

The computer program product 138 stored in the storage circuit 137 maybe realized with one or more application program modules. For example,FIG. 3 shows a simplified functional module diagram of the computerprogram product 138 in FIG. 1 according to one embodiment of the presentdisclosure. In this embodiment, the computer program product 138comprises a video and audio processing module 310, a pseudo clockcontrol module 320, a networking module 330, an user command receivingmodule 340, and an emulator module 350.

In practice, each of the memories 111 and 131 may be realized with anappropriate volatile memory circuit or non-volatile memory circuit. Eachof the transmission circuits 112 and 132 may be realized with anappropriate audio and video transmission circuit complying withappropriate standard specifications. Each of the user control devices113 and 133 may be realized with one or more appropriate joysticks,keyboards, touch panels, computer mice, tracking balls, mind controldevices, a combination of the above devices, or any devices that canconvert user's intend to control signals/keycodes to user controlcircuit. Each of the communication circuits 114 and 134 may be realizedwith a wired networking interface, a wireless networking interface, or ahybrid circuit integrated with the functionalities of the above twointerfaces. Each of the processors 116 and 136 may be realized with oneor more appropriate computing circuits. Each of the storage circuits 117and 137 may be realized with an appropriate non-volatile memory circuit.Each of the display devices 120, 140, and 160 may be realized with anappropriate television, a computer screen with associated speakers, aprojector device with associated speakers, or any other appropriateaudio and video playback device.

Please note that in the video game emulating system 100, the hardwarespecifications of a functional block of a video game console may bedifferent from that of a corresponding functional block of another videogame console. For example, the memories 111 and 131 may have differentstorage capacities and/or operating frequencies. The transmissioncircuits 112 and 132 may adopt different audio and video datatransmission formats. The user control devices 113 and 133 may havedifferent user command input mechanisms. The communication circuits 114and 134 may adopt different networking mechanisms. The processors 116and 136 may have different operating frequencies and/or different numberof computing cores. The storage circuits 117 and 137 may have differentstorage capacities and/or data writing schemes.

Different functional blocks of the video game console 110 may berespectively realized with different circuits, or may be integrated intoa single circuit chip. For example, the processor 116 of the controlcircuit 115 and the storage circuit 117 may be integrated into the samecircuit chip. In addition, at least one of the memory 111, thetransmission circuit 112, the user control device 113, and thecommunication circuit 114 may be further integrated into the controlcircuit 115. Similarly, the processor 136 of the control circuit 135 andthe storage circuit 137 may be integrated into the same circuit chip. Inaddition, at least one of the memory 131, the transmission circuit 132,the user control device 133, and the communication circuit 134 may befurther integrated into the control circuit 135.

As described previously, different video game consoles in the video gameemulating system 100 may cooperate together through networkingconnections to conduct emulation operations of a same old fashionstandalone multiplayer video game, so as to enable multiple users indifferent geographical locations (e.g., different rooms, differentbuildings, different cities, or different countries) to play the sameold fashion standalone multiplayer video game together.

In practical applications, the video game consoles in the video gameemulating system 100 may be respectively located in different rooms,different buildings, different cities, or different countries. Ofcourse, the video game consoles in the video game emulating system 100may be arranged at different places within a same indoor space.

In operations, one of the video game consoles in the video gameemulating system 100 may be utilized to act the role of a master-sidegame console while another one or more video game consoles may beutilized to act as one or more client-side game consoles. Themaster-side game console is responsible for collecting the manipulationdata inputted by the players of all video game consoles participating inthe video game emulation operations so as to generate correspondinginstructions. The master-side game console is also responsible forcontrolling all participating video game consoles to individuallyexecute the instructions generated by the master-side game console atsubstantially the same time, so as to present substantially the samegame screen to all players in different geographical locations. All ofthe client-side game consoles would execute the instructions generatedby the master-side game console at substantially the same time under thetiming control of the master-side game console, so that the game screenrendered by each of the client-side game consoles can be synchronizedwith the game screen rendered by the master-side game console.

The operations of the video game emulating system 100 will be furtherdescribed in the following by reference to FIG. 4 and FIG. 5. FIG. 4 andFIG. 5 collectively show a simplified flowchart illustrating a methodfor emulating a standalone multiplayer video game according to oneembodiment of the present disclosure.

In FIG. 4 and FIG. 5, operations within a column under the name of aspecific device are operations to be performed by the specific device.For example, operations within a column under the label “master-sidegame console” are operations to be performed by the video game consoleacting as a master-side game console, operations within a column underthe label “client-side game console” are operations to be performed bythe video game console acting as a client-side game console.

For illustrative purpose, it is assumed hereafter that the video gameconsole 110 is the video game console acting the role of a master-sidegame console while the video game console 130 is the video game consoleacting the role of a client-side game console. Accordingly, the displaydevice 120 is hereafter referred to as the master-side display device120 while the display device 140 is hereafter referred to as theclient-side display device 140.

When the user of the master-side game console 110 and another user ofthe client-side game console 130 want to play a specific old fashionmultiplayer video game together, one of the two players can manipulatethe master-side game console 110 to perform the operation 402 andanother player can manipulate the client-side game console 130 toperform the operation 404.

In the operation 402, the networking module 230 of the computer programproduct 118 stored in the master-side game console 110 may control theprocessor 116 to activate a master mode operation to wait for connectionrequests to be transmitted from other client-side game consoles.

In the operation 404, the networking module 330 of the computer programproduct 138 stored in the client-side game console 130 may control theprocessor 136 to activate a client mode operation to generate aconnection request.

In the operation 406, the networking module 330 of the computer programproduct 138 may control the processor 136 to instruct the communicationcircuit 134 to transmit the connection request to the master-side gameconsole 110 through the network.

When the connection request transmitted from the client-side gameconsole 130 through the network is received by the communication circuit114 of the master-side game console 110, the master-side game console110 and the client-side game console 130 would perform the operation408.

In the operation 408, the networking modules 230 and 330 respectivelycontrol the processors 116 and 136 to establish a networking connectionbetween the master-side game console 110 and the client-side gameconsole 130 through the communication circuits 114 and 134.

In implementations, the processors 116 and 136 may respectively utilizethe communication circuits 114 and 134 to directly conduct various datahandshaking procedures and/or identity authentication procedures witheach other through the network, to thereby establish the networkingconnection between the master-side game console 110 and the client-sidegame console 130.

In another embodiment, the communication circuits 114 and 134 mayrespectively communicate with a player matching server 190 through thenetwork, and utilize the player matching server 190 as an intermediatedevice for networking connection, game player matching, and/orsubsequent data exchange.

For example, the processors 116 and 136 may respectively utilize thecommunication circuits 114 and 134 to establish a networking connectionbetween the master-side game console 110 and the client-side gameconsole 130 through the network by adopting various peer-to-peernetworking connection mechanisms.

For another example, the networking module 230 may control the processor116 to request the user of the master-side game console 110 to choose orto input a specific group identification code. When the master-side gameconsole 110 and the client-side game console 130 directly communicatewith each other through the network or indirectly communicate with eachother through the player matching server 190, the networking module 330may control the processor 136 to request the user of the client-sidegame console 130 to choose or to input a group identification code. Ifthe group identification code provided by the client-side game console130 matches with the specific group identification code provided by themaster-side game console 110, the master-side game console 110 or theplayer matching server 190 may configure the master-side game console110 and the client-side game console 130 that have the same groupidentification code to be a same gaming group, and allow the master-sidegame console 110 and the client-side game console 130 to establish anetworking connection with each other.

In the operation 410, the emulator module 250 of the computer programproduct 118 may control the processor 116 to emulate a hardwareoperating environment (e.g., creating a virtual central processing unitcomplying with specific specifications, configuring the values ofvirtual registers, and the like) of a predetermined old fashion videogame console, so as to create a master-side emulating environment(a.k.a. a master-side emulating platform). In the operation 410, theemulator module 250 may further control the processor 116 to load atarget game image file into the master-side emulating environment. Inpractice, the target game image file may be stored in the memory 111 orthe storage circuit 117 of the master-side game console 110 in advance.

The term “target game image file” used throughout the description andthe claims refers to an archive file containing a target game selectedby the user, wherein the target game is an old fashion standalonemultiplayer video game as described above. In other words, the targetgame per se is designed to be incapable of supporting multiple users toplay the target game together through networking connections. Inimplementations, the aforementioned image file may be a compressed fileor an uncompressed file.

In the operation 412, the emulator module 350 of the computer programproduct 138 may control the processor 136 to emulate a hardwareoperating environment (e.g., creating a virtual central processing unitcomplying with specific specifications, configuring the values ofvirtual registers, and the like) of the predetermined old fashion videogame console, so as to create a client-side emulating environment(a.k.a. a client-side emulating platform). In the operation 412, theemulator module 350 may further control the processor 136 to load thetarget game image file into the client-side emulating environment. Inpractice, the target game image file may be stored in the memory 131 orthe storage circuit 137 of the client-side game console 130 in advance.

In implementations, the executing order of the operations 410 and 412has no particular restriction, and thus the operations 410 and 412 maybe performed at the same time or at different points of time.

In the operation 414, the emulator module 250 of the computer programproduct 118 may control the processor 116 to generate an emulatingenvironment initialization instruction.

In the operation 416, the networking module 230 of the computer programproduct 118 may control the processor 116 to instruct the communicationcircuit 114 to transmit the emulating environment initializationinstruction to the client-side game console 130 through the network.

In the operation 418, the emulator module 250 may control the processor116 to conduct an initialization procedure on the master-side emulatingenvironment to reset the values of multiple virtual registers in themaster-side emulating environment (hereinafter referred to asmaster-side register values).

When conducting the video game emulation operations, the pseudo clockcontrol module 220 of the computer program product 118 generates apseudo clock counter value (hereinafter referred to as a master-sidepseudo clock counter value), and the virtual central processing unit(virtual CPU) in the master-side emulating environment created by theprocessor 116 would carry out the emulation computing based on themaster-side pseudo clock counter value generated by the pseudo clockcontrol module 220.

In implementations, the pseudo clock control module 220 of the computerprogram product 118 may also reset the master-side pseudo clock countervalue in the operation 418.

On the other hand, when the emulating environment initializationinstruction transmitted from the master-side game console 110 isreceived by the communication circuit 134 of the client-side gameconsole 130 through the network, the client-side game console 130performs the operation 420.

In the operation 420, the emulator module 350 may control the processor136 to conduct an initialization procedure on the client-side emulatingenvironment according to the emulating environment initializationinstruction transmitted from the master-side game console 110, so as toreset the values of multiple virtual registers in the client-sideemulating environment (hereinafter referred to as client-side registervalues).

When conducting the video game emulation operations, the pseudo clockcontrol module 320 of the computer program product 138 generates apseudo clock counter value (hereinafter referred to as a client-sidepseudo clock counter value), and the virtual central processing unit(virtual CPU) in the client-side emulating environment created by theprocessor 136 would carry out the emulation computing based on theclient-side pseudo clock counter value generated by the pseudo clockcontrol module 320.

In practice, the pseudo clock control module 320 of the computer programproduct 138 may also reset the client-side pseudo clock counter value inthe operation 420 according to the emulating environment initializationinstruction transmitted from the master-side game console 110, so as tosubstantially synchronize the client-side pseudo clock counter valuewith the master-side pseudo clock counter value.

When the user of the master-side game console 110 manipulates the usercontrol device 113 to issue related game commands, the master-side gameconsole 110 performs the operation 502. When the user of the client-sidegame console 130 manipulates the user control device 133 to issuerelated game commands, the client-side game console 130 performs theoperation 504.

In the operation 502, the user control device 113 of the master-sidegame console 110 generates one or more input values (hereinafterreferred to as master-side input values) based on its user'smanipulations. For example, the master-side input values may compriseone or more keycodes, button codes, axis codes of joystick, and/orjoystick vectors. In this situation, the user command receiving module240 of the computer program product 118 would control the processor 116to receive the one or more master-side input values generated by theuser control device 113.

In the operation 504, the user control device 133 of the client-sidegame console 130 generates one or more input values (hereinafterreferred to as client-side input values) based on its user'smanipulations. For example, the client-side input values may compriseone or more keycodes, button codes, axis codes of joystick, and/orjoystick vectors. In this situation, the user command receiving module340 of the computer program product 138 would control the processor 136to receive the one or more client-side input values generated by theuser control device 133.

In practice, the executing order of the operations 502 and 504 has noparticular restriction, and it does not require the operations 502 and504 should be performed at the same time.

In the operation 506, the networking module 330 of the computer programproduct 138 may control the processor 136 to utilize the communicationcircuit 134 to transmit the one or more client-side input values to themaster-side game console 110 through the network.

When the one or more client-side input values transmitted from theclient-side game console 130 through the network is received by thecommunication circuit 114 of the master-side game console 110, themaster-side game console 110 performs the operation 508.

In the operation 508, the emulator module 250 of the computer programproduct 118 controls the processor 116 to generate a target instructionbased on the one or more master-side input values and/or the one or moreclient-side input values. If necessary, the emulator module 250 may alsoupdate the one or more master-side register values in the master-sideemulating environment based on the one or more master-side input valuesand/or the one or more client-side input values.

In the operation 510, the pseudo clock control module 220 of thecomputer program product 118 generates a pseudo clock indicator valuecorresponding to the next master-side pseudo clock counter value.

In the operation 512, the networking module 230 of the computer programproduct 118 controls the processor 116 to utilize the communicationcircuit 114 to transmit the target instruction and/or the pseudo clockindicator value to the client-side game console 130 through the network.If the emulator module 250 updates the one or more master-side registervalues in the master-side emulating environment in the aforementionedoperation 508, the processor 116 may also utilize the communicationcircuit 114 to transmit one or more updated master-side register valuesto the client-side game console 130 through the network in the operation512.

In practice, the processor 116 may transmit all master-side registervalues to the client-side game console 130 in the operation 512.Alternatively, the processor 116 may merely transmit the newly updatedmaster-side register values to the client-side game console 130 in theoperation 512 so as to reduce the data amount to be transmitted from themaster-side game console 110 to the client-side game console 130.

Accordingly, the communication circuit 134 of the client-side gameconsole 130 may receive the target instruction, the pseudo clockindicator value, and/or one or more updated master-side register valuestransmitted from the master-side game console 110 in the operation 512.

In the operation 514, the emulator module 250 of the computer programproduct 118 controls the processor 116 to fetch and execute the targetinstruction based on the pseudo clock indicator value. For example, theemulator module 250 may control the virtual CPU in the master-sideemulating environment to fetch the target instruction when themaster-side pseudo clock counter value reaches a first predeterminedcounter value corresponding to the pseudo clock indicator value, andthen controls the virtual CPU in the master-side emulating environmentto execute the target instruction when the master-side pseudo clockcounter value reaches a second predetermined counter value.

In the operation 516, the video and audio processing module 210 of thecomputer program product 118 updates the game screen to be displayed onthe master-side display device 120 (hereinafter referred to as themaster-side game screen) and generates corresponding sound effectsaccording to the executing results of the target instruction. Forexample, the video and audio processing module 210 may render an updatedmaster-side game screen according to the executing results of the targetinstruction, and control the processor 116 to transmit the updatedmaster-side game screen to the master-side display device 120 throughthe transmission circuit 112 so as to display the updated master-sidegame screen on the master-side display device 120.

As shown in FIG. 5, the master-side game console 110 may repeat thecorresponding operations in FIG. 5 under control of the computer programproduct 118 to continue the subsequent emulation operations of thetarget game.

On the other hand, if the master-side game console 110 transmits one ormore updated master-side register values to the client-side game console130 in the operation 512, then the client-side game console 130 wouldperform the operation 518.

In the operation 518, the emulator module 350 of the computer programproduct 138 controls the processor 136 to overwrite one or moreclient-side register values in the client-side emulating environmentwith the one or more updated master-side register values transmittedfrom the master-side game console 110.

If the master-side game console 110 transmits all master-side registervalues to the client-side game console 130 in the operation 512, thenthe emulator module 350 may overwrite all client-side register values inthe operation 518.

If the master-side game console 110 merely transmits some newly updatedmaster-side register values to the client-side game console 130 in theoperation 512, then the emulator module 350 may merely overwrite somecorresponding client-side register values in the operation 518.

In the operation 520, the emulator module 350 of the computer programproduct 138 controls the processor 136 to fetch and execute the targetinstruction transmitted from the master-side game console 110 based onthe pseudo clock indicator value transmitted from the master-side gameconsole 110. For example, the emulator module 350 may control thevirtual CPU in the client-side emulating environment to fetch the targetinstruction when the client-side pseudo clock counter value reaches afirst predetermined counter value corresponding to the pseudo clockindicator value, and then control the virtual CPU in the client-sideemulating environment to execute the target instruction when theclient-side pseudo clock counter value reaches a second predeterminedcounter value.

In the operation 522, the video and audio processing module 310 of thecomputer program product 138 updates the game screen to be displayed onthe client-side display device 140 (hereinafter referred to as theclient-side game screen) and generates corresponding sound effectsaccording to the executing results of the target instruction. Forexample, the video and audio processing module 310 may render an updatedclient-side game screen according to the executing results of the targetinstruction, and control the processor 136 to transmit the updatedclient-side game screen to the client-side display device 140 throughthe transmission circuit 132 so as to display the updated client-sidegame screen on the client-side display device 140.

In other words, the client-side game screen is independently generatedby the client-side display device 140 according to the targetinstruction, and the master-side game console 110 does not transmit themaster-side game screen to the client-side game console 130 to be theclient-side game screen.

As shown in FIG. 5, the client-side game console 130 may repeat thecorresponding operations in FIG. 5 under control of the computer programproduct 138 to continue the subsequent emulation operations of thetarget game.

As can be appreciated from the foregoing descriptions, the targetinstruction to be executed by the virtual CPU in the client-sideemulating environment created by the processor 136 is generated by theemulator module 250 in the master-side game console 110, and notgenerated by the emulator module 350 in the client-side game console130.

In addition, it can be appreciated that the operating clock of thevirtual CPU in the client-side emulating environment created by theprocessor 136 is not independently controlled by the pseudo clockcontrol module 320 in the client-side game console 130. Instead, theoperating clock of the virtual CPU in the client-side emulatingenvironment created by the processor 136 is indirectly controlled by thepseudo clock indicator value generated by the pseudo clock controlmodule 220 in the master-side game console 110.

Therefore, the virtual CPU in the master-side emulating environment ofthe master-side game console 110 and the virtual CPU in the client-sideemulating environment of the client-side game console 130 both fetch thesame target instruction at a substantially same first point of time andboth execute the same target instruction at a substantially same secondpoint of time.

Please note that the client-side game screen to be displayed on theclient-side display device 140 is independently generated by theclient-side game console 130, and thus the master-side game console 110does not need to transmit the master-side game screen to the client-sidegame console 130 to be the synchronization basis of the emulationoperation of the video game.

Due to the progress of the modern technology, the operating frequenciesof the processors 116 and 136 in the master-side game console 110 andthe client-side game console 130 are far faster than the operatingfrequencies of the virtual CPU in the emulating environments created bythe emulator modules 250 and 350. On the other hand, the time requiredfor exchanging the aforementioned data between the master-side gameconsole 110 and the client-side game console 130 using modern networkingtechnologies is far less than the time required for the virtual CPUs inthe emulating environments created by the emulator modules 250 and 350to execute each instruction. Accordingly, the time required for thevirtual CPUs in the emulating environments created by the emulatormodules 250 and 350 to execute one instruction is sufficient for themaster-side game console 110 and the client-side game console 130 toconduct hundreds or even thousands times of data exchange.

Therefore, although the operating timing control of the virtual CPU inthe client-side emulating environment created by the processor 136 andthe target instruction to be executed are generated by the emulatormodule 250 of the master-side game console 110 and then transmitted tothe client-side game console 130, but the game emulation operationsconducted by the master-side game console 110 and the client-side gameconsole 130 are substantially synchronized with each other. As a result,the game screens displayed on the master-side display device 120 and theclient-side display device 140 and related sound effects aresubstantially synchronized with each other from the perspective ofnormal users, and thus no obvious time lag will be perceived by theusers.

Please note that the executing order of the operations illustrated inFIG. 4 and FIG. 5 is merely an exemplary embodiment, rather than arestriction to practical implementations. For example, the connectionrequest in the operation 406 may be instead generated by the master-sidegame console 110 and then transmitted to the client-side game console130 from the master-side game console 110 through the network.

The executing order of the operations 508 and 510 may be swapped witheach other. The operation 510 may be instead performed before theoperation 502 or 506, or may be performed at the same time as theoperation 502 or 508.

In addition, the master-side game console 110 may not transmit updatedmaster-side register values to the client-side game console 130 at eachtime the master-side game console 110 transmits data to the client-sidegame console 130, and thus the operation 518 may be sometimes omitted.

Furthermore, the previous embodiment takes the cooperation between twovideo game consoles 110 and 130 as an example to describe relatedoperations, but the method for emulating a standalone multiplayer videogame illustrated in FIG. 4 and FIG. 5 can also be applied in otherapplications where more client-side video game consoles are employed toparticipate the emulation operations of the old fashion standalonemultiplayer video game.

In can be appreciated from the foregoing descriptions that the disclosedvideo game emulating system 100 enables multiple video game consoles toconduct emulation operations of the same old fashion standalonemultiplayer video game through networking connections, so as to allowmultiple players in different geographical locations (e.g., differentrooms, different buildings, different cities, or different countries) toplay the same old fashion standalone multiplayer video game together.

In addition, since the master-side game console 110 does not need totransmit the image data of the master-side game screen to theclient-side game console 130, the data amount to be transmitted from themaster-side game console 110 to the client-side game console 130 can besignificantly reduced, thereby effectively avoiding perceivable time lagbetween the game screen of the master-side game console 110 and the gamescreen of the client-side game console 130.

Certain terms are used throughout the description and the claims torefer to particular components. One skilled in the art appreciates thata component may be referred to as different names. This disclosure doesnot intend to distinguish between components that differ in name but notin function. In the description and in the claims, the term “comprise”is used in an open-ended fashion, and thus should be interpreted to mean“include, but not limited to.” The term “couple” is intended to compassany indirect or direct connection. Accordingly, if this disclosurementioned that a first device is coupled with a second device, it meansthat the first device may be directly or indirectly connected to thesecond device through electrical connections, wireless communications,optical communications, or other signal connections with/without otherintermediate devices or connection means.

The term “and/or” may comprise any and all combinations of one or moreof the associated listed items. In addition, the singular forms “a,”“an,” and “the” herein are intended to comprise the plural forms aswell, unless the context clearly indicates otherwise.

Other embodiments of the invention will be apparent to those skilled inthe art from consideration of the specification and practice of theinvention disclosed herein. It is intended that the specification andexamples be considered as exemplary only, with a true scope and spiritof the invention indicated by the following claims.

What is claimed is:
 1. A control circuit (135) of a client-side game console (130), wherein the client-side game console (130) comprises a transmission circuit (132), an user control device (133), and a communication circuit (134), the control circuit (135) comprising: a processor (136); and a storage circuit (137) arranged to operably store a computer program product (138); wherein the processor (136) is arranged to operably execute the computer program product (138) to perform following operations: establishing a networking connection between the client-side game console (130) and a remote master-side game console (110) through the communication circuit (134); loading a target game image file into a client-side emulating environment created by the processor (136); receiving one or more client-side input values generated by the user control device (133) based on an user's manipulations; utilizing the communication circuit (134) to transmit the one or more client-side input values to the master-side game console (110); receiving a target instruction and a pseudo clock indicator value transmitted from the master-side game console (110) through a network; executing the target instruction in the client-side emulating environment based on the pseudo clock indicator value; and rendering an updated client-side game screen according to executing results of the target instruction and transmitting the updated client-side game screen to a client-side display device (140) for displaying through the transmission circuit (132).
 2. The control circuit (135) of claim 1, wherein a target game contained in the target game image file is a standalone multiplayer video game, and the target game per se is designed to be incapable of supporting multiple users to play the target game together through networking connections.
 3. The control circuit (135) of claim 2, wherein the processor (136) is arranged to operably utilize the communication circuit (134) to transmit a connection request to the master-side game console (110) through the network before establishing the networking connection between the client-side game console (130) and the master-side game console (110) through the communication circuit (134).
 4. The control circuit (135) of claim 2, wherein the processor (136) is further arranged to operably execute the computer program product (138) to perform following operation: receiving one or more updated master-side register values transmitted from the master-side game console (110) through the network; and overwriting one or more client-side register values in the client-side emulating environment with the one or more updated master-side register values.
 5. The control circuit (135) of claim 4, wherein the master-side game console (110) is arranged to operably generate the target instruction based on the one or more client-side input values and the one or more master-side input values, to operably update one or more master-side register values in a master-side emulating environment created by the master-side game console (110), and to operably utilize the communication circuit (114) to transmit one or more updated master-side register values to the client-side game console (130) through the network.
 6. The control circuit (135) of claim 2, wherein the processor (136) is arranged to operably execute the computer program product (138) to perform following operations: receiving an emulating environment initialization instruction transmitted from the master-side game console (110) through the network; and conducting an initialization procedure on the client-side emulating environment to reset multiple client-side register values.
 7. The control circuit (135) of claim 6, wherein the master-side game console (110) is arranged to operably load the target game image file into a master-side emulating environment created by the master-side game console (110), to operably generate the emulating environment initialization instruction, and to operably conduct an initialization procedure on the master-side emulating environment to reset multiple master-side register values.
 8. The control circuit (135) of claim 2, wherein the master-side game console (110) is arranged to operably execute the target instruction in a master-side emulating environment created by the master-side game console (110) based on the pseudo clock indicator value, to operably render an updated master-side game screen according to executing results of the target instruction, and to operably transmit the updated master-side game screen to a master-side display device (120) for displaying. 